Electronic devices, such as computer systems, wireless cellular telephones, mobile computing devices or other data processing systems often include a visual display device. Many modern computer systems implement a graphical user interface (GUI) on the display device. The GUI may include multiple windows, or frames of visual data, each displaying separate content, and one or more views within each window. Every object displayed on the screen (e.g., icon, image, status bar, etc.) may be in a separate view. The display device may display a single window or, in certain situations, may display multiple windows at the same time.
The determination, of which windows and views are displayed, along with how, when and where they are displayed, may be controlled by a single process resident on the computing device, known as a window manager process. The window manager process may include windows and views related to the system and may provide for displaying windows and views controlled by other applications running on the computing device. In the case of an application, typically, the window manager process requests that display data from the application be sent to the window manager process where it is copied directly into the window manager process space. FIG. 1 is a block diagram illustrating the process space of a prior art computing device. The process space is divided into a window manager process space and an application process space. The application process space includes an application display structure 150 made up of an application window 152 and multiple application views 154. In order to display an image based on the application display structure 150, the application display structure is copied into a rendering structure 130 in the window manager process space. From there, an image is rendered based on the rendering structure 130 and including application display structure 150.
It is preferable to avoid applications having direct access to the window manager process space. There is a significant security risk in allowing third party applications to access the fundamental window manager process. Applications may be developed by a party other than the manufacturer of the computing device and window manager process, and it may be desirable to prohibit these applications from having direct access. Additionally, a failure of the application process while operating in the window manager process space could result in a crash of the entire computing device. Furthermore, as an increasing number of applications take up part of the window manager process space, the window manager process gains an increasingly larger memory footprint. At a certain point, the window manager process may become so large, that it will hinder operation of the computing device.